package cn.java.lambda.test3;

import java.util.function.BiFunction;
import java.util.function.Consumer;

/**
 * 测试静态方法引用
 * @author 攀博课堂(www.pbteach.com)
 * @version 1.0
 **/
public class TestStaticFun {
    public static void main(String[] args) {
        //使用Lambda表达式实现
        System.out.println(operate((x,y)->x+y,1,2));
        //使用方法引用，求两个数的和
        System.out.println(operate(Integer::sum,1,2));
        //测试当函数式接口的抽象方法的返回值为void时，仍然可以使用一个返回值不为void的方法引用
        Consumer<String> fun  = TestStaticFun::toUpperCase;
        fun.accept("www.pbteach.com");
    }

    //实现两个数的操作
    public static int operate(BiFunction<Integer,Integer,Integer> fun,int n1,int n2){
        return fun.apply(n1,n2);
    }
    /**
     * 将字符串转大写
     * @param s 输入一个字符串
     * @return 转大写后的字符串
     */
    public static String toUpperCase(String s){
        System.out.println("s="+s);
        //将字符串转在大写
        return s.toUpperCase();
    }
}
